Interactive media environments are typically resource constrained in terms of available processing power, memory and other resources that are available to applications running in the environment. One common example of interactive media is video encoded on DVD (digital versatile disc) where users can interact with graphical menus or other controls to navigate to specific video content or invoke special features that are authored into the DVD.
In more complex interactive media environments, despite the limited resources, applications need to respond to users in real-time manner that is frame-accurate with the video. However, the use of real-time multithreaded programming to accomplish such a goal would place a large burden on interactive media authors in dealing with issues such as thread management and synchronization.